package com.home766.service;

import com.home766.dto.SchemeProductDto;
import com.home766.entity.SchemeProduct;
import net.biz.Page;
import net.biz.Pageable;
import net.biz.entity.Brand;
import net.biz.service.BaseService;

import java.util.Date;
import java.util.List;

public interface SchemeProductService extends BaseService<SchemeProduct, Long> {
	
	/**
	 * 检查名称是否存在
	 * @param name
	 * @return
	 */
	boolean checkExists(String name);
	
	/**
	 * 根据方案类型查询对应方案产品数据集合
	 * @param type
	 * @param name 
	 * @param sn 
	 * @return
	 */
	List<SchemeProduct> findSchemeProductByType(Long type, String sn, String name);
	
	/**
	 * 根据方案分类查询对应方案产品数据集合
	 * @param type
	 * @param name 
	 * @param sn 
	 * @return
	 */
	List<SchemeProduct> findSchemeProductByCategory(Long category, String sn, String name);
	
	/**
	 * 方案产品分页查询
	 * @param pageable
	 * @param sn            编码
	 * @param name          产品名称
	 * @param createPerson  创建人
	 * @param beginDate     
	 * @param endDate
	 * @param type          类型
	 * @param brand         品牌
	 * @return
	 */
	Page<SchemeProductDto> findPage(Pageable pageable, String sn, String name, String createPerson, Date beginDate, Date endDate, Long type, Long brand);
	/**
	 * 根据商品编号查找商品
	 * 
	 * @param sn
	 *            商品编号(忽略大小写)
	 * @return 商品，若不存在则返回null
	 */
	SchemeProduct findBySn(String sn);
	
	/**
	 * 根据分类查询主材产品集合
	 * @param categoryId
	 * @return
	 */
	List<SchemeProduct> findByCategory(Long categoryId, Boolean bool);

	boolean checkBrandInSchemeProduct(Brand brand);

	boolean saveSchemeProducts(SchemeProduct sproduct, String[] specificationValueIds);
	
	/***
	 * 获取智能暖气下的壁挂炉品牌
	 * @return
	 */
	List<SchemeProductDto> getSchemeProductDtoList();
	/***
	 * 获取智能暖气下除了壁挂炉之外的品牌（辅材品牌）
	 * @return
	 */
	List<SchemeProductDto> getSchemeProductDtoListOfAuxiliary();
	/***
	 * 获取智能空调下的除提升泵和控制器品牌（主机品牌）
	 * @return
	 */
	List<SchemeProductDto> getSchemeProductDtoListByConditioner();
}
